package com.kfm.pm;

import java.time.*;
import java.util.Date;

public class Conversion02 {

    public static void main(String[] args) {
//        LocalDate localDate = LocalDate.now();
//        LocalTime localTime = LocalTime.now();
//        // LocalDate --> LocalDateTime
//        LocalDateTime localDateTime = localDate.atStartOfDay();
//        LocalDateTime localDateTime1 = localDate.atTime(14, 0, 0);
//        LocalDateTime localDateTime2 = localDate.atTime(localTime);
//
//        LocalDateTime of = LocalDateTime.of(localDate, localTime);
//
//        // LocalTime --> LocalDateTime
//        LocalDateTime localDateTime3 = localTime.atDate(localDate);

//        LocalDate localDate = toLocalDate(new Date());
//        System.out.println(localDate.getYear());

        LocalDate localDate1 = LocalDate.now();
        System.out.println(toDate(localDate1));

    }

    /**
     * 将 Date 对象转换成 LocalDate
     * @param date
     * @return
     */

    public static LocalDate toLocalDate(Date date) {
        Instant instant = date.toInstant(); // 将Date对象转换为 Instant 对象
        ZoneId zoneId = ZoneId.systemDefault(); // 创建了一个ZoneId对象，表示当前系统的默认时区。
        ZonedDateTime zonedDateTime = instant.atZone(zoneId);
        return zonedDateTime.toLocalDate();
    }


    /**
     * 将 LocalDate 转换成 Date
     * @param localDate
     * @return
     */
    public static Date toDate(LocalDate localDate) {
        ZoneId zoneId = ZoneId.systemDefault(); // 创建了一个ZoneId对象，表示当前系统的默认时区。
        ZonedDateTime zonedDateTime = localDate.atStartOfDay(zoneId);
        Instant instant = zonedDateTime.toInstant();
        return Date.from(instant);
    }
}
